package com.cx.anno;

import java.util.Arrays;
import java.util.List;

public class StaticMethodReference {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("Alice", "Bob", "Charlie");

        // 使用 Lambda 表达式
        names.forEach(name -> System.out.println(name));

        // 使用静态方法引用   静态方法引用的语法是：ClassName::staticMethod
        names.forEach(System.out::println);
        for (String name : names) {
            System.out.println(name.toUpperCase());
        }

        //使用实例方法引用   实例方法引用的语法是：object::instanceMethod
        names.forEach(name -> name.toUpperCase());
        names.forEach(String::toUpperCase);

        //使用类方法引用   类方法引用的语法是：ClassName::instanceMethod
        names.forEach(name -> name.length());
        names.forEach(String::length);
        //使用构造方法引用   构造方法引用的语法是：ClassName::new
        names.forEach(name -> new String(name));
        names.forEach(String::new);
    }
}